SQLite which is a library-based DB that is widely used as an embedded database in the related art uses an OS file lock. For example, when there are clients A and B, in the case where two clients intend to access the same DB, the client A first accessing the DB locks the entirety of a DB file and then, the client B that accesses the DB later is prevented from accessing the corresponding DB. As a result, concurrency of the database is degraded and there is a disadvantage in that overhead is large due to the use of the file lock.
In a DBMS using a client server model in the related art, when two clients access a critical section which is a shared resource similarly as above, the client which first accesses the critical section sets the lock. Since the lock has the overhead, the lock degrades performance.
That is, since the message is processed by multiple threads or processes during lock contention, CPU overhead exists, which purely occurs due to the lock contention. In a structure frequently using the lock as described above, there is a problem in that deadlock is likely to occur due to a performance penalty due to the lock overhead and a user programming (SQL writing) error.
Therefore, there is a demand for a method for enhancing the concurrency and maintaining integrity in a database management system.
Korean Patent Unexamined Publication No. 10-2009-0119032 (Nov. 19, 2009) as an invention regarding a hardware operating system based and shared cache based multi-processor system discloses a configuration regarding a system that stores work information of a waiting queue, a work state and the like in a control thread and granting a priority to the stored information to execute the work.